Non-volatile memory device with USB and wireless connectivity and method for controlling the connectivity

ABSTRACT

A non-volatile memory device having a USB connector with a USB controller, and a wireless antenna with a wireless controller. The USB controller and the wireless controller are both operatively connected to the non-volatile memory. When the non-volatile memory device is operatively connected to a host using the USB connector, the USB controller has priority over the wireless controller for read from, and write to, functions with the non-volatile memory. A corresponding method is also disclosed.

CROSS-REFERENCE TO OTHER APPLICATIONS

This is a National Phase of International Application No.PCT/SG2006/000197 filed on Jul. 13, 2006.

FIELD OF THE INVENTION

This invention relates to a non-volatile memory device with USB andwireless connectivity and to a method for controlling the connectivity.

BACKGROUND TO THE INVENTION

Non-volatile memory devices with USB connectivity are well known. Theyare often used as easily-carried storage devices, MP3 players, fortransferring data, for storing image date, and so forth. They can usetheir USB connector to interface with any host having a USB port suchas, for example, a digital camera, MP3 player, personal digitalassistant, personal computer, portable computer, printers, projectors,television receivers, radios, and so forth.

The introduction of wireless connectivity to such a device createsproblems on how to resolve the competing requirements for access to thenon-volatile memory by the two different connection systems.

SUMMARY OF THE INVENTION

In accordance with a first preferred aspect there is provided anon-volatile memory device having a USB connector and a USB controller,and a wireless antenna and a wireless controller. The USB controller andthe wireless controller are both operatively connected to thenon-volatile memory. When the non-volatile memory device is operativelyconnected to a host using the USB connector, the USB controller haspriority over the wireless controller for read from, and write to,functions with the non-volatile memory.

In accordance with a second preferred aspect there is provided anon-volatile memory device comprising:

-   -   a USB connector and a USB controller,    -   a wireless antenna and a wireless controller,    -   the USB controller and the wireless controller both being        operatively connected to the non-volatile memory;    -   wherein when in use and the USB connector is operatively        connected to a host, the wireless controller sends all commands        to the USB controller and when in use and the USB connector is        not operatively connected to the host, the wireless controller        sends all commands directly to a file allocation table of the        non-volatile memory.

According to a third preferred aspect there is provided a method forcontrolling access to a non-volatile memory of a non-volatile memorydevice having a USB connector, the access being by a USB controller anda wireless controller of the non-volatile memory device. The methodcomprises: providing priority for the USB controller over the wirelesscontroller for read from, and write to, functions with the non-volatilememory when the non-volatile memory device is operatively connected to ahost using the USB connector.

According to a fourth preferred aspect there is provided a method forcontrolling access to a non-volatile memory of a non-volatile memorydevice having a USB connector, the access being by a USB controller anda wireless controller of the non-volatile memory device, the methodcomprising:

-   -   when the USB connector is operatively connected to a host, the        wireless controller sends all commands to the USB controller and        when the USB connector is not operatively connected to the host,        the wireless controller sends all commands directly to a file        allocation table of the non-volatile memory.

For all aspects any command of the wireless controller for thenon-volatile memory may pass through the USB controller. The wirelesscontroller may be operatively connected to the USB controller via aninterface for enabling the USB controller to control, communicate withand respond to requests from the wireless controller. The interface maycomprise a first interface that forms a part of the USB controller and asecond interface that forms a part of the wireless controller. Thesecond interface may be for converting wireless protocol communicationsfor enabling them to be read by the USB controller. The conversion maybe to a USB protocol. The first interface may be for converting USBprotocol communications for enabling them to be read by the wirelesscontroller. The conversion may be to a wireless protocol.

The USB controller and the wireless controller have a master:slaverelationship with the USB controller as the master and the wirelesscontroller as the slave. The USB controller may be able to be enumeratedas a local drive, and the wireless controller may be able to beenumerated as a network drive. A file allocation table may be able to beregularly updated to accord to the priority of the controllers. Thewireless controller may be unable to access the non-volatile memory ifthe USB controller is accessing the memory. The USB controller may beunable to access the non-volatile memory if the wireless controller isaccessing the non-volatile memory. When in use the USB connector is notoperatively connected to the host, the wireless connector may be able tooperate independently of the USB controller.

For the second aspect the USB controller may check to determine of thewireless controller is accessing the non-volatile memory beforecommencing to access the non-volatile memory and, if the wirelesscontroller is accessing the non-volatile memory the USB controller waitsfor a conclusion of a command of is the access by the wireless controlbefore commencing to access the non-volatile memory.

The non-volatile memory device may be able to be used to enable a hostdevice that is not wireless-enabled to send data wirelessly. In such acase the non-volatile memory may act as a sham memory.

The wireless controller may check to determine if the non-volatilememory is able to receive a new command before accessing thenon-volatile memory, the check being made at the USB controller and, ifthe USB controller has access to the non-volatile memory the wirelesscontroller waits until the access by the USB controller has concludedbefore accessing the non-volatile memory.

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the present invention may be fully understood and readilyput into practical effect there shall now be described by way ofnon-limitative example only a preferred embodiment of the presentinvention, the description being with reference to the accompanyingillustrative drawings.

In the drawings:

FIG. 1 is a perspective view of a preferred embodiment of a non-volatilememory device with USB and wireless connectivity;

FIG. 2 is a block diagram of the device of FIG. 1;

FIG. 3 is a flow chart for the operation of the device of FIGS. 1 and 2.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

To refer to FIGS. 1 and 2, there is shown a non-volatile memory device10 with a connector 12 configured to accord with the USB standard. Theconnector 12 has a USB controller 14. In this way data can be downloadedto or uploaded from non-volatile memory 16 using the USB connector 12 inthe normal manner. The non-volatile memory 16 may be a disc drive and/orflash memory. It may be a single memory device or may be several memorydevices.

In addition there is an antenna 18 for wireless connectivity of thedevice 10 to a host device (not shown). The wireless connectivity may beby any suitable system such as, for example, Bluetooth, WiFi, WiMax, andso forth. The antenna 18 may be built into the device 10 in which caseit would be entirely within the casing 20; or may be an additionalapparatus for releasable attachment to the device 10 using a suitableconnector (not shown). The antenna is controlled by the wirelesscontroller 22. If built-in, the casing should not be made of a metallicor other material that does not transmit wireless signals.

In this way the device 10 can be used in three different modes:

-   -   (i) when connected to a host using the USB connector 12 and for        the data download or upload to be via the USB connector 12 and        the USB controller 14. This is a mode that may be called USB/USB        indicating USB connectivity and USB operation;    -   (ii) when connected to a host using the USB connector 12 and for        the data download or upload to be via the antenna 18 and the        wireless controller 22. This is a mode that may be called        USB/Wireless indicating USB connectivity and wireless operation;        and    -   (iii) when connected to a host by the antenna 18 and for all        data upload or down load to be via the antenna 18 and wireless        controller 22, the USB connector 12 not being connected to a        host. This mode may be called Wireless/Wireless indicating        wireless connectivity and wireless operation.

In the first two modes, the device 10 has electrical power supplied tothe device 10 for the operation of the device 10 by the power lines ofthe USB connector 12. This power is used for all functions of the device10 including the operation of the USB controller 14 and the wirelesscontroller 22. In these two modes the presence of the power supplied bythe connector 12 may be used as an indicator that the device 10 is tooperate in one of these two modes.

In the third mode, electrical power for the operation of the device 10is provided by the EMF generated across antenna 18 and/or a battery inthe device 10. This power is used for the operation of the device 10except for the operation of the USB controller 14. In this mode, thelack of power supplied by the connector 12 may be used as an indicatorthat the device 10 is to operate in this mode, and that there is, andshould be, no power supplied to the USB controller 14. As such, thewireless controller 22 can operate independently of the USB controller14.

The memory 16 is operatively connected to and accessible by the USBcontroller 14 as well as the wireless controller 22. In the first twomodes, the USB controller 14 will have a higher priority for both readand write functions than the wireless controller 22. This may be done byhaving a master:slave relationship between the USB controller 14 and thewireless controller 22, with the USB controller 14 being the master andthe wireless controller being the slave.

Both the USB controller 14 and the wireless controller 22 are able towrite to and read from the memory 16. The USB controller 14 willenumerate as a local drive and therefore the host connected to it willhave a higher priority. The wireless controller 22 will be enumerated asa network drive and thus any host connected wirelessly will be connectedthrough the wireless LAN will be considered as a network drive and thushave a lower priority. Multiple users will be able to connect throughthe wireless controller 22.

In the first two modes, the wireless controller 22 and the USBcontroller 14 will be operatively connected via an interface. Theinterface is constituted by a first interface 15 that forms a part ofthe USB controller 14, and a second interface 23 that forms a part ofthe wireless controller 22. However, the two interfaces 15, 23 may becombined into firmware operatively located between the USB controller 14and the wireless controller 22, if required or desired. The interfaces15, 23 may be, for example, a Universal AsynchronousReceiver/Transmitter (“UART”), Service Provider Interface (“SPI”) orSecure Digital In/Out interface (“SDIO”). By means of the interfaces 15,23, the USB controller 14 will be able to control, communicate with andrespond to requests from the wireless controller 22 as any command ofthe wireless controller 22 for the memory 16 must pass through the USBcontroller 14.

The interface 23 is for converting wireless protocol communications toenable them to be read by the USB controller 14. The conversion is to aUSB-readable protocol. The interface 15 is for converting USB protocolcommunications to enable them to be read by the wireless controller 22.The conversion is to a wireless-readable protocol

The file allocation table 26 of the memory 16 will be updated atconstant intervals but the file allocation table 26 can receive only oneinput at a time.

As shown in FIG. 3, after starting (300), when a command is received itis first determined (301) if the USB connector 12 is connected to a host(not shown) This is determined by the voltage supplied from the host tothe USB device 10 through connector 12. If there is a voltage it isassumed that the USB controller is to write data to the memory 16 (302)or to read data from the memory 16. The source of the command is thendetermined (303). If the command is from the USB controller 14 (304),the USB controller 14 then checks to determine if the wirelesscontroller 22 is accessing the memory 16 (305), preferably by checkingfor a reading or writing command from the wireless controller 22. If not(308), the USB controller 14 will start to write the data to the memory(309) via the file allocation table 26 and the data line 28. If thewireless controller 22 is accessing the memory 16 (306), the controller14 will wait (307) for a predetermined time until the read/write commandis finished being serviced. It will then service the new command fromthe USB controller 14 and write the data (309).

If during the write command of the USB controller 14, a read or writecommand issues from the wireless controller 22, the read or writecommand from the wireless controller 22 will be rejected by the USBcontroller 14. After the write command from the USB controller 14 isfinished, the file allocation table 26 will be updated to the wirelessnetwork drive that is connected through the wireless controller 22.

If at (303) the command is from the wireless controller 22 (310), itpasses through the USB controller 14. The USB controller 14 then checksto determine if the wireless controller 22 is accessing the memory 16(311), preferably by checking for a reading or writing command from theUSB controller 14. If not (314), the wireless controller 14 will startto write the data to the memory (309) via the file allocation table 26and the data line 28. If the USB controller 14 is accessing the memory16 (312), the wireless controller 22 will wait (313) for a predeterminedtime until the read/write command is finished being serviced. It willthen service the new command from the wireless controller 22 and writethe data (309).

In the third mode, when the USB connector 12 is not connected to a host(316), the initial read or write command will be from the wirelesscontroller 22. The wireless controller 22 can therefore bypass the USBcontroller 14 and directly determine if the memory 16 is able to acceptnew commands (317). If the memory 16 is able to accept new commands(318), the data is sent to or read from the memory 16 (309) via the dataline 30 and the file allocation table 26.

During the read or write command from the wireless controller 22 beingserviced, a read or write command from the USB controller 14 will not beserviced and the command will not be able to be serviced until thecommand from the wireless controller is completed. If the memory 16 isnot able to accept new commands (320) due to, for example, the memory 16being accessed for whatever reason or for whatever function that thememory 16 may be performing, the command will not be allowed by thememory controller. After waiting a predetermined period (321) and whenthe memory 16 is able to receive new commands, the command will be ableto be approved and the data will be sent to or read from the memory 16through the data line 30 and the file allocation table 26 (309).

The non-volatile memory device may be able to be used to enable a hostdevice that is not wireless-enabled to send data wirelessly. In such acase the non-volatile memory may act as a sham memory.

In this description, and in the drawings, components of the device 10that are not relevant to the invention have been omitted for simplifyingthe understanding f the invention. For example, a controller for thenon-volatile memory 16 is not described nor illustrated even though onewould inherently be required, as would be known to a person skilled inthe technology.

Whilst there has been described in the foregoing description a preferredembodiment of the present invention it will be understood by thoseskilled in the technology concerned that many variations ormodifications in details of design or construction may be made withoutdeparting from the present invention.

1. A non-volatile memory device comprising: a USB connector and a USBcontroller, a wireless antenna and a wireless controller, the USBcontroller and the wireless controller both being operatively connectedto a non-volatile memory, wherein, when in use with the USB connectorbeing operatively connected to a host, the wireless controller sends allcommands to the USB controller, and when the USB controller receivescommands from both the USB connector and the wireless controller, a fileallocation table receiving at most one input at a time from one of theUSB controller and the wireless controller via the USB controller so asto enable prioritization of the one input of the USB controller over theone input of the wireless controller via the USB controller for readfrom and write to functions associated with the non-volatile memory, theone input being serviced until completion; and wherein when in use withthe USB connector not being operatively connected to the host, thewireless controller sends all commands directly to the file allocationtable of the non-volatile memory.
 2. A non-volatile memory device asclaimed in claim 1, wherein any command of the wireless controller forthe memory passes through the USB controller; wherein the wirelesscontroller is operatively connected to the USB controller via aninterface for enabling the USB controller to control, communicate withand respond to requests from the wireless controller; the interfacecomprising a first interface that forms a part of the USB controller anda second interface that forms a part of the wireless controller; thefirst interface being for converting USB protocol communications forenabling them to be read by the wireless controller.
 3. A non-volatilememory device as claimed in claim 2, wherein the second interface is forconverting wireless protocol communications for enabling them to be readby the USB controller, and the conversion is to a USB protocol.
 4. Anon-volatile memory device as claimed in claim 1, wherein the USBcontroller is able to be enumerated as a local drive, and the wirelesscontroller is able to be enumerated as a network drive; the USBcontroller and the wireless controller having a master:slaverelationship with the USB controller as the master and the wirelesscontroller as the slave.
 5. A non-volatile memory device as claimed inclaim 1, wherein when in use the USB connector is not operativelyconnected to the host, the wireless connector is able to operateindependently of the USB controller; the non-volatile memory devicebeing able to be used for sending data wirelessly when connected to ahost that is not enabled with a protocol of the wireless controller. 6.A non-volatile memory device as claimed in claim 1, wherein the wirelesscontroller is unable to access the non-volatile memory if the USBcontroller is accessing the memory; the USB controller being unable toaccess the non-volatile memory if the wireless controller is accessingthe non-volatile memory.
 7. A method for controlling access to anon-volatile memory of a non-volatile memory device having a USBconnector, the access being by a USB controller and a wirelesscontroller of the non-volatile memory device, the method comprising:when the USB connector is operatively connected to a host, the wirelesscontroller sends all commands to the USB controller, and when the USBcontroller receives commands from both the USB connector and thewireless controller, a file allocation table receiving at most one inputat a time from one of the USB controller and the wireless controller viathe USB controller so as to enable prioritization of the one input ofthe USB controller over the one input of the wireless controller via theUSB controller for read from and write to functions associated with thenon-volatile memory, the one input being serviced until completion, andwhen the USB connector is not operatively connected to the host, thewireless controller sends all commands directly to the file allocationtable of the non-volatile memory.
 8. A method as claimed in claim 7,wherein any command of the wireless controller for the memory passesthrough the USB controller; the wireless controller being operativelyconnected to the USB controller via an interface and enables the USBcontroller to control, communicate with and respond to requests from thewireless controller; the interface comprising a first interface thatforms a part of the USB controller and a second interface that forms apart of the wireless controller; the second interface convertingwireless protocol communications to enable them to be read by the USBcontroller; and the conversion being to a USB protocol or a wirelessprotocol.
 9. A method as claimed in claim 8, wherein the first interfaceconverts USB protocol communications for enabling them to be read by thewireless controller.
 10. A method as claimed in claim 7, wherein the USBcontroller is enumerated as a local drive, and the wireless controlleris enumerated as a network drive; the USB controller and the wirelesscontroller having a master:slave relationship with the USB controller asthe master and the wireless controller as the slave.
 11. A method asclaimed in claim 7, wherein the USB controller checks to determine ofthe wireless controller is accessing the non-volatile memory beforecommencing to access the non-volatile memory and, if the wirelesscontroller is accessing the non-volatile memory the USB controller waitsfor a conclusion of a command of the access by the wireless controllerbefore commencing to access the non-volatile memory; the wirelesscontroller being unable to access the non-volatile memory if the USBcontroller is accessing the non-volatile memory; the wireless controllerchecking to determine if the non-volatile memory is able to receive anew command before accessing the non-volatile memory, the check beingmade at the USB controller and, if the USB controller has access to thenon-volatile memory the wireless controller waits until the access bythe USB controller has concluded before accessing the non-volatilememory.
 12. A method as claimed in claim 7, wherein the USB controlleris unable to access the non-volatile memory if the wireless controlleris accessing the non-volatile memory; the non-volatile memory devicebeing used to enable a host device that is not wireless-enabled to senddata wirelessly.
 13. A method as claimed in claim 7, wherein when in usethe USB connector is not operatively connected to the host, the wirelessconnector operates independently of the USB controller; the non-volatilememory acting as a sham memory.
 14. A non-volatile memory device asclaimed in claim 1, wherein the USB controller is configured to reject aread or write command received from the wireless controller via the USBcontroller during a write command from the USB controller.
 15. A methodas claimed in claim 7, wherein the USB controller is configured toreject a read or write command received from the wireless controller viathe USB controller during a write command from the USB controller.